﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Legacy_Calculator__Form_Based_
{
    public enum LakiLakiPenerimaWarisan
    {
        ANAK_LAKI_LAKI = 0,
        CUCU_LAKI_LAKI_DARI_ANAK_LAKI_LAKI_KANDUNG = 1,
        BAPAK = 2,
        KAKEK_DARI_AYAH = 3,
        SAUDARA_LAKI_LAKI_KANDUNG = 4,
        SAUDARA_LAKI_LAKI_SEAYAH = 5,
        SAUDARA_LAKI_LAKI_SEIBU = 6,
        KEPONAKAN_LAKI_LAKI_DARI_SAUDARA_KANDUNG_LAKI_LAKI = 7,
        KEPONAKAN_LAKI_LAKI_DARI_SAUDARA_TIRI_LAKI_LAKI = 8,
        PAMAN_SEKANDUNG = 9,
        PAMAN_TIRI = 10,
        SEPUPU_LAKI_DARI_PAMAN_KANDUNG = 11,
        SEPUPU_LAKI_DARI_PAMAN_TIRI = 12,
        SUAMI = 13,
        MU_TIQ = 14
    }

    public enum PerempuanPenerimaWarisan
    {
        ANAK_PEREMPUAN = 0,
        CUCU_PEREMPUAN_DARI_ANAK_LAKI_LAKI_KANDUNG = 1,
        IBU = 2,
        NENEK_DARI_AYAH = 3,
        NENEK_DARI_IBU = 4,
        SAUDARA_PEREMPUAN_KANDUNG = 5,
        SAUDARA_PEREMPUAN_SEAYAH = 6,
        SAUDARA_PEREMPUAN_SEIBU = 7,
        ISTRI = 8,
        MU_TIQAH = 9
    }

    public class EntitasPenerimaWarisan
    {
        public string nama;
        public int jumlah;
        public bool dapat;
        public bool ada;

        public double bagian;

        public bool ashobah;

        public EntitasPenerimaWarisan(string nama, int jumlah, bool dapat)
        {
            this.nama = nama;
            this.jumlah = jumlah;
            this.dapat = dapat;
            this.ada = false;

            this.bagian = 0.0;

            this.ashobah = false;
        }
    }

    public static class Referensi
    {
        public static void Ada(LakiLakiPenerimaWarisan tipe, int jumlah)
        {
            Referensi.arrayLakilakiPenerima[(int)tipe].ada = true;
            Referensi.arrayLakilakiPenerima[(int)tipe].jumlah = jumlah;
        }

        public static void Ada(PerempuanPenerimaWarisan tipe, int jumlah)
        {
            Referensi.arrayPerempuanPenerima[(int)tipe].ada = true;
            Referensi.arrayPerempuanPenerima[(int)tipe].jumlah = jumlah;
        }

        public static bool ApakahAda(LakiLakiPenerimaWarisan tipe)
        {
            return Referensi.arrayLakilakiPenerima[(int)tipe].ada;
        }

        public static bool ApakahAda(PerempuanPenerimaWarisan tipe)
        {
            return Referensi.arrayPerempuanPenerima[(int)tipe].ada;
        }

        public static void Ashobah(LakiLakiPenerimaWarisan tipe)
        {
            Referensi.arrayLakilakiPenerima[(int)tipe].ashobah = true;
            Referensi.arrayLakilakiPenerima[(int)tipe].dapat = true;
        }

        public static void Ashobah(PerempuanPenerimaWarisan tipe)
        {
            Referensi.arrayPerempuanPenerima[(int)tipe].ashobah = true;
            Referensi.arrayPerempuanPenerima[(int)tipe].dapat = true;
        }

        public static void Dapat(LakiLakiPenerimaWarisan tipe, double bagian)
        {
            Referensi.arrayLakilakiPenerima[(int)tipe].bagian = bagian;
        }

        public static void Dapat(PerempuanPenerimaWarisan tipe, double bagian)
        {
            Referensi.arrayPerempuanPenerima[(int)tipe].bagian = bagian;
        }

        public static int Jumlah(LakiLakiPenerimaWarisan tipe)
        {
            return Referensi.arrayLakilakiPenerima[(int)tipe].jumlah;
        }

        public static int Jumlah(PerempuanPenerimaWarisan tipe)
        {
            return Referensi.arrayPerempuanPenerima[(int)tipe].jumlah;
        }

        public static EntitasPenerimaWarisan[] arrayLakilakiPenerima = new EntitasPenerimaWarisan[] {
            new EntitasPenerimaWarisan("ANAK LAKI-LAKI", 0, false),
            new EntitasPenerimaWarisan("CUCU LAKI-LAKI", 0, false),   
            new EntitasPenerimaWarisan("BAPAK", 1, false),
            new EntitasPenerimaWarisan("KAKEK DARI AYAH", 1, false),
            new EntitasPenerimaWarisan("SAUDARA LAKI-LAKI KANDUNG", 0, false),
            new EntitasPenerimaWarisan("SAUDARA LAKI-LAKI SEAYAH", 0, false),
            new EntitasPenerimaWarisan("SAUDARA LAKI-LAKI SEIBU", 0, false),
            new EntitasPenerimaWarisan("KEPONAKAN LAKI-LAKI DARI SAUDARA KANDUNG LAKI-LAKI", 0, false),
            new EntitasPenerimaWarisan("KEPONAKAN LAKI-LAKI DARI SAUDARA TIRI LAKI-LAKI", 0, false),
            new EntitasPenerimaWarisan("PAMAN KANDUNG", 0, false),
            new EntitasPenerimaWarisan("PAMAN TIRI", 0, false),
            new EntitasPenerimaWarisan("SEPUPU LAKI-LAKI DARI PAMAN KANDUNG", 0, false),
            new EntitasPenerimaWarisan("SEPUPU LAKI-LAKI DARI PAMAN TIRI", 0, false),
            new EntitasPenerimaWarisan("SUAMI", 1, false),
            new EntitasPenerimaWarisan("MU'TIQ", 0, false),
        };

        public static EntitasPenerimaWarisan[] arrayPerempuanPenerima = new EntitasPenerimaWarisan[] {
            new EntitasPenerimaWarisan("ANAK PEREMPUAN", 0, false),
            new EntitasPenerimaWarisan("CUCU PEREMPUAN DARI ANAK LAKI-LAKI KANDUNG", 0, false),
            new EntitasPenerimaWarisan("IBU", 1, false),
            new EntitasPenerimaWarisan("NENEK DARI AYAH", 1, false),
            new EntitasPenerimaWarisan("NENEK DARI IBU", 1, false),
            new EntitasPenerimaWarisan("SAUDARA PEREMPUAN SEKANDUNG", 0, false),
            new EntitasPenerimaWarisan("SAUDARA PEREMPUAN SEAYAH", 0, false),
            new EntitasPenerimaWarisan("SAUDARA PEREMPUAN SEIBU", 0, false),
            new EntitasPenerimaWarisan("ISTRI", 0, false),
            new EntitasPenerimaWarisan("MU'TIQAH", 0, false),
        };
    }
}
